package taller2.model.factorys;

import taller2.interfaces.Graph;
import taller2.model.graph.GraphImpl;
import taller2.model.graph.GraphNotDirectedImpl;

public class GraphFactory {

	// returns an instance of the graph
	public static Graph directedGgraphInstance(){
		return new GraphImpl();
	}
	
	// returns an instance of the undirected graph
	public static Graph undirectedGraphInstance(){
		return new GraphNotDirectedImpl();
	}
	
	// returns an instance of the graph from another graph (copy constructor)
	public static Graph directedGraphInstance(Graph other){
		return new GraphImpl((GraphImpl) other);
	}
	
	// returns an instance of the undirected graph from another graph (copy constructor)
	public static Graph undirectedGraphInstance(Graph other){
		return new GraphNotDirectedImpl((GraphImpl)other);
	}
	
}
